package polymorphism

import (
	"context"
	"fmt"
)

//定义一个struct用来实现接口类型
type msgModelImpl struct{}

//定义一个变量MsgModelImpl等于msgModelImpl，相当于可以通过MsgModelImpl来调用msgModelImpl的成员
//var MsgModelImpl = msgModelImpl{}

//实现接口的两个方法
func (m msgModelImpl) Persist(context context.Context, msgIface interface{}) bool {
	// 具体实现省略
	return false
}

func (m msgModelImpl) UpdateDbContent(context context.Context, msgIface interface{}) bool {
	// 具体实现省略
	return false
}

type msgService struct {
	msgModel MsgModel
}

func Main() {
	//_ = msgService{
	//	msgModel: MsgModelImpl,
	//}
	//fmt.Println(MsgService.msgModel.Persist())
	var i = []int{}
	fmt.Println(i[0])
	var ii = make([]int, 0)
	fmt.Println(ii[0])
}
